home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / HDS 3.02 / Read Me < prev    next >
Encoding:
Text File  |  1993-12-30  |  4.6 KB  |  47 lines  |  [TEXT/ttxt]

  1. WHAT IS HDS?
  2.  
  3. HDS is a simple but very fast database system. In an HDS database you can store and retrieve any information you like. It is a single user database which delivers all needed low level functions and as well some pretty high level functions to form a powerful tool for the organisation of your information.
  4. Emphasis is laid on an easy and fast access of information on a record by record basis. Usage may span from a quite simple save file where you store some items for the next session up to a fully fledged database with relations and processing directives.
  5.  
  6. HDS is not a database in the classical sense. It is mainly focused on the application developer who wants to store application defined data (e.g. initialisation, save files) in a structured and efficient way.
  7. When starting a project it may seem sufficient to use a simple sequential file for this purpose but as the development goes on it may be necessary to put some structure on this data and to have the possibility to look at the saved data without having the actual application running. HDS is best used when:
  8. •    an application has to store structured data permanently,
  9. •    the access to the data in the structures is almost sequential and no complicated
  10.         queries are needed,
  11. •    the amount of memory needed is not known beforehand and may exceed the main
  12.         memory available and
  13. •    the usage of a classical database would cause too much overhead or would be too
  14.         expensive.
  15. Since HDS implements very fast access methods it can be regarded as some kind of virtual memory mechanism.
  16.  
  17.  
  18. WHAT IS AN HDS DATABASE?
  19.  
  20. An HDS database is organised in branches, records and fields. Branches are ordered lists of records which are ordered lists of fields. Branches always have fathers except of the main branch which has none. The records in a branch are the sons of the father record. This forms a hierarchical structure.
  21. Furthermore records may have an ordered list of data records (a data block) which are meant as a description of the owner record. With this feature it is also possible to use an unlimited amount of fields (i.e. the data records).
  22. Records and branches can be protected against modification and deletion. This protection can be removed.
  23. Records consist of fields where the actual information is stored. These fields are defined in for the user invisible descriptor records; the scope of a field description is a branch, so for each branch (including the data records) there must be a field description. For branches which may occur similarly several times in the database you may create a Generic Description where the field types of that branches are stored (in the DESCRIPTORS branch). To create a new branch you can refer to that Generic Description instead of defining the field types redundantely.
  24.  
  25. Beside this hierarchical structure the user may impose other relations on the data. In HDS a field type “Pointer” may be defined which reflects an HDS record number. So, instead of relying on the pointers HDS is maintaining automatically the user may implement arbitrary relations between records.
  26. If it is know at creation time of a new branch that all records of this branch will have relations to some other records on top of the hierarchical structure the user may define a pointer field where the record numbers of the targets will be stored. If this is not the case there is an other mechanism available in HDS. Two arbitrary records in the database can be linked dynamically any time although that was not prepared at creation time of the branches (no pointer fields defined). The record numbers of that records are stored at a central place in the database (in the LINKS branch) in some kind of cross table. Accessing this cross table leads to a performance loss; so the usage of this mechanism is only recommended if it is absolutely necessary.
  27.  
  28.  
  29. WHAT DO I GET?
  30.  
  31. HDS comes in quite a lot of pieces. They are:
  32.  
  33. •    Registration Form                if like HDS you must register
  34. •    the HDS library                        the object code of the HDS functions you may link to your
  35.                                                                                 application
  36. •    the header files                   you need them for compilation of your application
  37. •    exception libraries            you need one of them for linkage
  38. •  HDSTEST ƒ                                        a small benchmark to see how HDS is running on your machine
  39. •    the Monitor                                    debugging tool to look at your database
  40. •    HDSLib                                                 Hypercard externals for direct usage of HDS from HyperTalk
  41. •    HDSClient                                        Hypercard externals for usage of the HDS Server from
  42.                                                                                 HyperTalk
  43. •    HDSServer                                        the server used together with HDSClient
  44. •    the Documentation ƒ         you need some documentation, don't you?
  45. •    the Examples ƒ                         examples aren't too bad
  46.  
  47. and of course this file.